package com.hzit.util;

import com.alibaba.fastjson.JSON;
import com.hzit.constant.HzitConstants;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.server.reactive.ServerHttpResponse;
import reactor.core.publisher.Mono;

/**
 * 类名：
 * 作者：WF
 * 功能：
 */
public class ResponseUtil {
	/**
	 *
	 * @param response  响应
	 * @param msg       错误信息
	 * @param code      错误码
	 * @return
	 */
	public static Mono<Void> webFluxResponseWriter(ServerHttpResponse response, String msg, int code) {
		//1. 代表前端可以接受到出错的信息
		response.setStatusCode(HttpStatus.OK);
		//2.设置请求类型，以附加请求头方式设置
		response.getHeaders().add(HzitConstants.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
		//3. 构造输出信息
		R<Object> fail = R.fail(code, msg);
		DataBuffer dataBuffer = response.bufferFactory().wrap(JSON.toJSONString(fail).getBytes());
		//4. 将信息输出到页面
		return response.writeWith(Mono.just(dataBuffer));
	}
}
